/*
 * StrategyG - Web System
 * Copyright 2011-2012
 *
 * Autor		: Vanie Torres
 * Fecha Registro	: 30/11/2012 12:22:54 AM
 * Detalle		: Persona
 */

package com.strategy.data.entity;


import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 *
 * @author Vanie Torres
 */
@Entity
@Table(name = "tbl_persona", catalog = "strategydb", schema = "tesis")
@SequenceGenerator(name = "tesis.seq_tbl_persona_cod", sequenceName = "tesis.seq_tbl_persona_cod")
@NamedQueries({
    @NamedQuery(name = "Persona.findAll", query = "SELECT p FROM Persona p"),
    @NamedQuery(name = "Persona.consultarPorNombreCompleto",
    query = "SELECT p FROM Persona p WHERE " +
            "(p.apePaterno LIKE :parametro1 OR p.apeMaterno LIKE :parametro1 OR p.nombre1 LIKE :parametro1 OR p.nombre2 LIKE :parametro1) AND " +
            "(p.apePaterno LIKE :parametro2 OR p.apeMaterno LIKE :parametro2 OR p.nombre1 LIKE :parametro2 OR p.nombre2 LIKE :parametro2) AND " +
            "(p.apePaterno LIKE :parametro3 OR p.apeMaterno LIKE :parametro3 OR p.nombre1 LIKE :parametro3 OR p.nombre2 LIKE :parametro3) " +
            "ORDER BY p.apePaterno, p.apeMaterno, p.nombre1, p.nombre2")

})
public class Persona implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "tesis.seq_tbl_persona_cod")
    @Column(name = "persona_cod")
    private Integer codigo;
    @Basic(optional = false)
    @Column(name = "persona_nomb1")
    private String nombre1;
    @Column(name = "persona_nomb2")
    private String nombre2;
    @Basic(optional = false)
    @Column(name = "persona_apep")
    private String apePaterno;
    @Basic(optional = false)
    @Column(name = "persona_apem")
    private String apeMaterno;
    @Basic(optional = false)
    @Column(name = "persona_fecnac")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaNacimiento;
    @Basic(optional = false)
    @Column(name = "persona_direccion")
    private String direccion;
    @Basic(optional = false)
    @Column(name = "persona_distrito")
    private String distrito;
    @Column(name = "persona_sexo")
    private String sexo;
    @Column(name = "persona_tefijo")
    private String telefono;
    @Basic(optional = false)
    @Column(name = "persona_celular1")
    private String celular1;
    @Column(name = "persona_celular2")
    private String celular2;
    @Column(name = "persona_foto")
    private Integer foto;
    @Basic(optional = false)
    @Column(name = "persona_fregistro")
    @Temporal(TemporalType.TIMESTAMP)
    private Date registroFecha;
    @Basic(optional = false)
    @Column(name = "persona_usregistro")
    private String registroUsr;
    @Basic(optional = false)
    @Column(name = "persona_ipregistro")
    private String registroIp;

    @Basic(optional = false)
    @Column(name = "persona_fauditoria")
    @Temporal(TemporalType.TIMESTAMP)
    private Date auditoriaFecha;
    @Basic(optional = false)
    @Column(name = "persona_usrauditoria")
    private String auditoriaUsr;
    @Basic(optional = false)
    @Column(name = "persona_ipauditoria")
    private String auditoriaIp;

    public Persona() {
    }

    public Date getAuditoriaFecha() {
        return auditoriaFecha;
    }

    public void setAuditoriaFecha(Date auditoriaFecha) {
        this.auditoriaFecha = auditoriaFecha;
    }

    public String getAuditoriaIp() {
        return auditoriaIp;
    }

    public void setAuditoriaIp(String auditoriaIp) {
        this.auditoriaIp = auditoriaIp;
    }

    public String getAuditoriaUsr() {
        return auditoriaUsr;
    }

    public void setAuditoriaUsr(String auditoriaUsr) {
        this.auditoriaUsr = auditoriaUsr;
    }

    public String getRegistroIp() {
        return registroIp;
    }

    public void setRegistroIp(String registroIp) {
        this.registroIp = registroIp;
    }

    public String getSexo() {
        return sexo;
    }

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

    public Persona(Integer personaCod) {
        this.codigo = personaCod;
    }

    public String getApeMaterno() {
        return apeMaterno;
    }

    public void setApeMaterno(String apeMaterno) {
        this.apeMaterno = apeMaterno;
    }

    public String getApePaterno() {
        return apePaterno;
    }

    public void setApePaterno(String apePaterno) {
        this.apePaterno = apePaterno;
    }

    public String getCelular1() {
        return celular1;
    }

    public void setCelular1(String celular1) {
        this.celular1 = celular1;
    }

    public String getCelular2() {
        return celular2;
    }

    public void setCelular2(String celular2) {
        this.celular2 = celular2;
    }

    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getDistrito() {
        return distrito;
    }

    public void setDistrito(String distrito) {
        this.distrito = distrito;
    }

    public Date getFechaNacimiento() {
        return fechaNacimiento;
    }

    public void setFechaNacimiento(Date fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }

    public Integer getFoto() {
        return foto;
    }

    public void setFoto(Integer foto) {
        this.foto = foto;
    }

    public String getNombre1() {
        return nombre1;
    }

    public void setNombre1(String nombre1) {
        this.nombre1 = nombre1;
    }

    public String getNombre2() {
        return nombre2;
    }

    public void setNombre2(String nombre2) {
        this.nombre2 = nombre2;
    }

    public Date getRegistroFecha() {
        return registroFecha;
    }

    public void setRegistroFecha(Date registroFecha) {
        this.registroFecha = registroFecha;
    }

    public String getRegistroUsr() {
        return registroUsr;
    }

    public void setRegistroUsr(String registroUsr) {
        this.registroUsr = registroUsr;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

   

    
   

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Persona)) {
            return false;
        }
        Persona other = (Persona) object;
        if ((this.codigo == null && other.codigo != null) || (this.codigo != null && !this.codigo.equals(other.codigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.strategy.data.entity.Persona[personaCod=" + codigo + "]";
    }

}
